package cn.javastudy.jdbc.advance.pool;

import static cn.javastudy.jdbc.GlobalProperties.password;
import static cn.javastudy.jdbc.GlobalProperties.url;
import static cn.javastudy.jdbc.GlobalProperties.user;

import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * HikariCP连接池示例
 */
public class HikariCPDemo {
    public static void main(String[] args) throws SQLException {
         /*
     硬编码：将连接池的配置信息和Java代码耦合在一起。
     1、创建HikariDataSource连接池对象
     2、设置连接池的配置信息【必须 ｜ 非必须】
     3、通过连接池获取连接对象
     4、回收连接
     */
        //1.创建HikariDataSource连接池对象
        HikariDataSource hikariDataSource = new HikariDataSource();

        //2.设置连接池的配置信息【必须 ｜ 非必须】
        //2.1必须设置的配置
        hikariDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        hikariDataSource.setJdbcUrl(url);
        hikariDataSource.setUsername(user);
        hikariDataSource.setPassword(password);

        //2.2 非必须设置的配置
        hikariDataSource.setMinimumIdle(10);
        hikariDataSource.setMaximumPoolSize(20);

        //3.通过连接池获取连接对象
        Connection connection = hikariDataSource.getConnection();

        System.out.println(connection);

        //回收连接
        connection.close();
    }
}
